interface BaseTableType {
  // 列名称
  label: string,
  // 列id
  prop: string,
  // 列宽度
  width?: string,
  // 列对齐方式
  align?: 'left' | 'center' | 'right',
  // 表头对齐方式
  headerAlign?: 'left' | 'center' | 'right',
  // 列是否显示
  visible?: boolean,
}

interface BaseTableDefaultType extends BaseTableType{
  // 列类型
  type?: 'default' | undefined,
}

interface TableTagType extends BaseTableType{
  // 列类型
  type: 'tag',
  // 标签样式
  tag: TagType,
  // 字典相关
  dict?: DictType
}

interface TableLinkType extends BaseTableType{
  // 列类型
  type: 'link',
  // 链接地址
  link: LinkType
}

interface LinkType {
  // 字段名称
  prop: string,
  // 基本链接
  baseUrl: string,
  // 跳转方式
  target: '_blank' | '_parent' | '_self' | '_top'
}

interface TableDictType extends BaseTableType{
  type: 'dict',
  dict: DictType
}

interface DictType {
  [any:string]: string
}

export type TableType = BaseTableDefaultType | TableTagType | TableLinkType | TableDictType

export interface TagType {
  type?: "primary" | "success" | "info" | "warning" | "danger"
  typeObj?: {
    [value: string]: "primary" | "success" | "info" | "warning" | "danger"
  }
  size?: "large" | "default" | "small",
  effect?: "dark" | "light" | "plain",
  hit?: boolean,
  color?: string,
  colorObj?: {
    [value: string]: string,
  }
}

/**
 * 行操作枚举
 */
export enum RowOptionEnum {
  // 删除
  DELETE = 'DELETE',
  // 修改
  UPDATE = 'UPDATE',
  // 新增
  ADD = 'ADD',
  // 详情
  DETAIL = 'DETAIL',
}

